/* SPDX-License-Identifier: GPL-2.0 */

#ifndef __AXVU_DRIVER_H__
#define __AXVU_DRIVER_H__

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* __cplusplus */

#define IOC_TYPE_AXVU 'V'

typedef enum eiIOC_NR_AXVU_E {
	IOC_NR_AXVU_LOG             = 0x00,
	IOC_NR_AXVU_SET_FREQ        = 0x03,
	IOC_NR_AXVU_GET_FREQ        = 0x04,
	IOC_NR_AXVU_RSZ_RUN         = 0x05,
	IOC_NR_AXVU_PYM_RUN         = 0x06,
	IOC_NR_AXVU_MBG_RUN         = 0x07,
	IOC_NR_AXVU_STATUS          = 0x08,
	IOC_NR_AXVU_QUERY_FINISH    = 0x09,
	IOC_NR_AXVU_GET_VER         = 0x0a,
	IOC_NR_AXVU_SET_REG         = 0x0b,
	IOC_NR_AXVU_GET_REG         = 0x0c,
	IOC_NR_AXVU_SET_TIMEOUT     = 0x0d,
	IOC_NR_AXVU_GET_TIMEOUT     = 0x0e,
	IOC_NR_AXVU_RUN             = 0x0f,
} IOC_AXVU_E;

#define AXVU_DEV_LOG                _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_LOG)
#define AXVU_DEV_SET_FREQ           _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_SET_FREQ)
#define AXVU_DEV_GET_FREQ           _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_GET_FREQ)
#define AXVU_DEV_RSZ_RUN            _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_RSZ_RUN)
#define AXVU_DEV_PYM_RUN            _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_PYM_RUN)
#define AXVU_DEV_MBG_RUN            _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_MBG_RUN)
#define AXVU_DEV_STATUS             _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_STATUS)

#define AXVU_DEV_QUERY_FINISH       _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_QUERY_FINISH)
#define AXVU_DEV_GET_VER            _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_GET_VER)
#define AXVU_DEV_SET_REG            _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_SET_REG)
#define AXVU_DEV_GET_REG            _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_GET_REG)
#define AXVU_DEV_SET_TIMEOUT        _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_SET_TIMEOUT)
#define AXVU_DEV_GET_TIMEOUT        _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_GET_TIMEOUT)
#define AXVU_DEV_RUN                _IO(IOC_TYPE_AXVU, IOC_NR_AXVU_RUN)
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */

#endif
